import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import path from 'path'
import { resolve } from 'path';

// 自动导入vue中hook reactive ref等
import AutoImport from "unplugin-auto-import/vite";
//自动导入ui-组件 比如说ant-design-vue  element-plus等
//配置https://gitcode.com/gh_mirrors/un/unplugin-vue-components/overview?utm_source=csdn_github_accelerator&isLogin=1
import Components from "unplugin-vue-components/vite"; 
import { 
  AntDesignVueResolver, 
} from 'unplugin-vue-components/resolvers';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      //安装两行后你会发现在组件中不用再导入ref，reactive等
      imports: ["vue", "vue-router"],
      //存放的位置
      dts: "src/auto-import.d.ts",
    }),
    Components({
      // 引入组件的,包括自定义组件
      // 存放的位置
      dts: "src/components.d.ts",
      // 内置解析器，例如Vuetify、Ant Design Vue、Element Plus等，可以通过以下方式开启
      resolvers: [AntDesignVueResolver({ importStyle: false, resolveIcons: true })]
    }),
  ],
  server: {
    host: "0.0.0.0", // 默认是 localhost
    port: 8008, // 自定义端口
    strictPort: false, // 设为 true 时若端口已被占用则会直接退出，而不是尝试下一个可用端口
    open: false, // 启动后是否浏览器自动打开
    hmr: true, // 为开发服务启用热更新，默认是不启用热更新的
    proxy: {
      // 本地开发环境通过代理实现跨域，生产环境使用 nginx 转发
      "/apis": {
        target: "https://vue.ruoyi.vip/prod-api", // 后端服务实际地址
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ""),
      },
    },
  },
  resolve: {
    // 配置别名
    alias: [{ find: '@', replacement: path.resolve(__dirname, 'src') }]
  },
  css: {
    preprocessorOptions: {
      less: {
        modifyVars: {
          hack: `true; @import (reference) "${resolve('src/theme/index.less')}";`,
        },
        javascriptEnabled: true,
      },
    },
  },
});
